package com.tjs.lucky.domain.strategy.repository;

import com.tjs.lucky.domain.strategy.model.aggregates.StrategyRich;
import com.tjs.lucky.domain.strategy.model.vo.AwardBriefVO;
import com.tjs.lucky.domain.strategy.model.vo.AwardRateVO;
import com.tjs.lucky.domain.strategy.model.vo.StrategyDetailBriefVO;

import java.util.List;

/**
 * @Author: 田佳澍
 * @Description:
 * @DateTime: 2023/5/22 14:37
 **/
public interface IStrategyRepository {

    /**
     *
     * @param strategyId 策略ID
     * @return
     */
    StrategyRich queryStrategyRich(Long strategyId);

    /**
     * 查询策略详情列表
     * @param strategyId
     * @return
     */
    List<AwardRateVO> queryStrategyDetailList(Long strategyId);

    /**
     * 查询奖品信息
     * @param awardId 精品ID
     * @return AwardBriefVO
     */
    AwardBriefVO queryAwardInfo(String awardId);

    /**
     * 查询没有库存的奖品列表
     * @param strategyId 策略ID
     * @return
     */
    List<String> queryNoStockStrategyAwardList(Long strategyId);

    /**
     * 同步奖品库存
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     * @param awardStock
     */
    void synAwardStock(Long strategyId, String awardId, String awardStock);

    /**
     * 查询奖品总库存
     * @param strategyId
     * @return
     */
    Integer queryTotalAwardStock(Long strategyId);

    /**
     * 查询该策略是否存在
     * @param strategyId
     * @return
     */
    Boolean hasThisStrategy(Long strategyId);

}
